home *** CD-ROM | disk | FTP | other *** search
/ Champak 29 / Volume 29 - JOGO DISK .iso / Games / jungle_adventure.swf / scripts / __Packages / SSParticle.as < prev    next >
Text File  |  2006-11-29  |  2KB  |  78 lines

  1. class SSParticle extends SSObject
  2. {
  3.    var trackInSectorGrid = false;
  4.    var rogueNode = true;
  5.    var gravity = 0;
  6.    var spin = 0;
  7.    var alpha = true;
  8.    var scale = 0;
  9.    var startAlpha = 100;
  10.    function SSParticle(asset, life, velocity, rot, grav)
  11.    {
  12.       super();
  13.       this.assetID = asset;
  14.       this.lifeSpan = this.life = life;
  15.       this.velocity = !velocity ? new Vector() : velocity;
  16.       if(rot != null)
  17.       {
  18.          this.spin = rot;
  19.       }
  20.       if(grav != null)
  21.       {
  22.          this.gravity = grav;
  23.       }
  24.    }
  25.    function onRemoveFromScene()
  26.    {
  27.       this.world.removeObject(this);
  28.    }
  29.    function onAddToWorld()
  30.    {
  31.       this.addToScene();
  32.    }
  33.    function onAddToScene()
  34.    {
  35.       if(!this.target)
  36.       {
  37.          this.world.removeObject(this);
  38.          return undefined;
  39.       }
  40.       this.getUpdates();
  41.    }
  42.    function onAddTarget()
  43.    {
  44.       if(this.alpha)
  45.       {
  46.          this.target._alpha = this.startAlpha;
  47.       }
  48.    }
  49.    function update(elapsed)
  50.    {
  51.       if((this.life -= elapsed) < 0 || this.z < this.world.viewport.z + 50)
  52.       {
  53.          this.target.swapDepths(0);
  54.          this.target.removeMovieClip();
  55.          this.world.removeObject(this);
  56.          return undefined;
  57.       }
  58.       this.velocity.y += this.gravity * elapsed;
  59.       this.moveBy(this.velocity.x * elapsed,this.velocity.y * elapsed,this.velocity.z * elapsed);
  60.    }
  61.    function onDisplay(viewport, elapsed)
  62.    {
  63.       var _loc2_ = this.life / this.lifeSpan;
  64.       if(this.alpha)
  65.       {
  66.          this.target._alpha = _loc2_ * 100;
  67.       }
  68.       if(this.spin)
  69.       {
  70.          this.target._rotation += this.spin * elapsed;
  71.       }
  72.       if(this.scale)
  73.       {
  74.          this.target._xscale = this.target._yscale = this.target._xscale + (1 - _loc2_) * this.scale * (this.target._xscale / 100);
  75.       }
  76.    }
  77. }
  78.